package com.letoken.platform.app.service.transfer;

import com.letoken.platform.pub.constant.LetokenTokenConstant;
import com.letoken.platform.pub.enums.LetokenApiResponseEnum;
import com.letoken.platform.pub.enums.LetokenTokenTypeEnum;
import com.letoken.platform.pub.exception.ApiServiceException;
import com.letoken.platform.pub.util.UUIDUtil;
import com.letoken.platform.repo.app.po.AppUser;
import com.letoken.platform.repo.app.po.Token;
import com.letoken.platform.repo.app.redis.AppWalletBlackListRedis;
import com.letoken.platform.repo.app.redis.AppWalletRateLimitRedis;
import com.letoken.platform.repo.app.req.token.WithdrawUsdtReq;
import com.letoken.platform.repo.utlis.LocalBlockUtils;
import com.letoken.platform.repo.utlis.UniqueIDUtils;

import java.math.BigDecimal;

public interface ITransfer {

    void transfer(WithdrawUsdtReq req);


    ITransfer checkout(WithdrawUsdtReq req);


    ITransfer choose(Integer mode);


    default String getSeq(String prefix){
        return UniqueIDUtils.genSeqNo(prefix);
    }

    default String getOtherSeq(String prefix,String sourceSeq){
        int len = prefix.length();
        return prefix + sourceSeq.substring(len);
    }


}
